<template>
   <h2>防抖</h2>
   <a-input type="text" v-model:value="test.value" @change="print(test.value)"></a-input>

   <br>
   <h2>节流</h2>
  
   <a-button class="objj" @click="submit">提交</a-button>
</template>
<script lang="ts" setup>

import { reactive, watch } from 'vue';

  const test=reactive<{
   value:string,

  }>({
   value:'',
  
  })
  let t:any=0
  function print(value:any){

   if(t!==0){
      clearTimeout(t)
   }
   t= setTimeout(()=>{
      console.log(value);
   },1000);
   return t
  };
let flag:any=true
let lasttime:any=0
 function submit(){
  if(lasttime==0){
   console.log("提交");
   lasttime=1
   
  } 
  else{
   if(flag){
   setTimeout(function(){
   console.log("提交");
   flag=true
 },3000)
  }
flag=false
  }
  
}



//  function throttle(fn:any, delay:any) {
//   let flag=true
//   return function(){
//    if(flag){

//    setTimeout(function(){
//       fn.call(this)
//       flag=true
//    },delay)
// }
// flag=false
//   }
// }


// print(test.value)

</script>